home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / mac / files / t_sys5 / 92052tar.gz / 920528.tar / session.h < prev    next >
C/C++ Source or Header  |  1991-05-10  |  2KB  |  83 lines

  1. /* @(#) $Header: session.h,v 1.8 91/05/09 07:38:51 deyke Exp $ */
  2.  
  3. #ifndef _SESSION_H
  4. #define _SESSION_H
  5.  
  6. #include <stdio.h>
  7.  
  8. #ifndef _GLOBAL_H
  9. #include "global.h"
  10. #endif
  11.  
  12. #ifndef _PROC_H
  13. #include "proc.h"
  14. #endif
  15.  
  16. #ifndef _HARDWARE_H
  17. #include "hardware.h"
  18. #endif
  19.  
  20. #ifndef _TELNET_H
  21. #include "telnet.h"
  22. #endif
  23.  
  24. #ifndef _AX25_H
  25. #include "ax25.h"
  26. #endif
  27.  
  28. extern int Mode;
  29. #define CMD_MODE        1       /* Command mode */
  30. #define CONV_MODE       2       /* Converse mode */
  31.  
  32. /* Session control structure; only one entry is used at a time */
  33. struct session {
  34.     int type;
  35. #define FREE    0
  36. #define TELNET  1
  37. #define FTP     2
  38. #define AX25TNC 3
  39. #define FINGER  4
  40. #define NRSESSION 5
  41.     char *name;     /* Name of remote host */
  42.     union {
  43.         struct ftp *ftp;
  44.         struct telnet *telnet;
  45. #ifdef  AX25
  46.         struct ax25_cb *ax25;
  47. #endif
  48.         struct finger *finger;
  49. #ifdef  NETROM
  50.         struct circuit *netrom;
  51. #endif
  52.     } cb;
  53.     void (*parse) __ARGS((char *,int));
  54.                 /* Where to hand typed input when conversing */
  55.     FILE *record;           /* Receive record file */
  56.     char *rfile;            /* Record file name */
  57.     FILE *upload;           /* Send file */
  58.     char *ufile;            /* Upload file name */
  59. };
  60. #define NULLSESSION     (struct session *)0
  61.  
  62. extern unsigned Nsessions;              /* Maximum number of sessions */
  63. extern struct session *Sessions;        /* Session descriptors themselves */
  64. extern struct session *Current;         /* Always points to current session */
  65.  
  66. /* In session.c: */
  67. void freesession __ARGS((struct session *s));
  68. struct session *newsession __ARGS((void));
  69. int dosession __ARGS((int argc, char *argv[], void *p));
  70. int go __ARGS((int argc,char *argv[],void *p));
  71. int doclose __ARGS((int argc, char *argv[], void *p));
  72. int doreset __ARGS((int argc, char *argv[], void *p));
  73. int dokick __ARGS((int argc, char *argv[], void *p));
  74. int dorecord __ARGS((int argc, char *argv[], void *p));
  75. int doupload __ARGS((int argc, char *argv[], void *p));
  76.  
  77. /* In main.c: */
  78. int cmdmode __ARGS((void));
  79.  
  80. extern int16 Lport;
  81.  
  82. #endif  /* _SESSION_H */
  83.